Skip to content

Commit

Permalink
Move options constants to __init__.py
Browse files Browse the repository at this point in the history
  • Loading branch information
nehpetsde committed Jul 30, 2017
1 parent 60b02c2 commit 844afef
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 53 deletions.
17 changes: 11 additions & 6 deletions src/nfc/llcp/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,15 @@
Protocol (LLCP) specification and provides a socket interface to use
the connection-less and connection-mode transport facilities of LLCP.
"""
from .socket import Socket # noqa: F401
from .llc import LOGICAL_DATA_LINK, DATA_LINK_CONNECTION # noqa: F401
from .err import * # noqa: F401,403
from .opt import * # noqa: F401,403
from .socket import Socket # noqa: F401
from .llc import LOGICAL_DATA_LINK, DATA_LINK_CONNECTION # noqa: F401
from .err import Error, ConnectRefused # noqa: F401

import logging
log = logging.getLogger(__name__)
SO_SNDMIU = 1
SO_RCVMIU = 2
SO_SNDBUF = 3
SO_RCVBUF = 4
SO_SNDBSY = 5
SO_RCVBSY = 6

MSG_DONTWAIT = 0b00000001
4 changes: 2 additions & 2 deletions src/nfc/llcp/llc.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@
from . import tco
from . import pdu
from . import err
from . import opt
from . import sec
import nfc.llcp
import nfc.clf
import nfc.dep

Expand Down Expand Up @@ -698,7 +698,7 @@ def socket(self, socket_type):
def setsockopt(self, socket, option, value):
if not isinstance(socket, tco.TransmissionControlObject):
raise err.Error(errno.ENOTSOCK)
if option == opt.SO_RCVMIU:
if option == nfc.llcp.SO_RCVMIU:
value = min(value, self.cfg['recv-miu'])
socket.setsockopt(option, value)
return socket.getsockopt(option)
Expand Down
30 changes: 0 additions & 30 deletions src/nfc/llcp/opt.py

This file was deleted.

30 changes: 15 additions & 15 deletions src/nfc/llcp/tco.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
# -----------------------------------------------------------------------------
from . import pdu
from . import err
from . import opt
import nfc.llcp

import errno
import threading
Expand Down Expand Up @@ -80,24 +80,24 @@ def is_bound(self):
return self.addr is not None

def setsockopt(self, option, value):
if option == opt.SO_SNDBUF:
if option == nfc.llcp.SO_SNDBUF:
# with self.lock: self.send_buf = int(value)
# adjustable send buffer only with non-blocking socket mode
raise NotImplementedError("SO_SNDBUF can not be set")
elif option == opt.SO_RCVBUF:
elif option == nfc.llcp.SO_RCVBUF:
with self.lock:
self.recv_buf = int(value)
else:
raise ValueError("invalid option value")

def getsockopt(self, option):
if option == opt.SO_SNDMIU:
if option == nfc.llcp.SO_SNDMIU:
return self.send_miu
if option == opt.SO_RCVMIU:
if option == nfc.llcp.SO_RCVMIU:
return self.recv_miu
if option == opt.SO_SNDBUF:
if option == nfc.llcp.SO_SNDBUF:
return self.send_buf
if option == opt.SO_RCVBUF:
if option == nfc.llcp.SO_RCVBUF:
return self.recv_buf

def bind(self, addr):
Expand All @@ -123,7 +123,7 @@ def poll(self, event, timeout):
def send(self, send_pdu, flags):
with self.send_ready:
self.send_queue.append(send_pdu)
if not (flags & opt.MSG_DONTWAIT):
if not (flags & nfc.llcp.MSG_DONTWAIT):
self.send_ready.wait()

def recv(self):
Expand Down Expand Up @@ -380,24 +380,24 @@ def err(self, string):

def setsockopt(self, option, value):
with self.lock:
if option == opt.SO_RCVMIU and self.state.CLOSED:
if option == nfc.llcp.SO_RCVMIU and self.state.CLOSED:
self.recv_miu = min(value, 2175)
return
if option == opt.SO_RCVBUF and self.state.CLOSED:
if option == nfc.llcp.SO_RCVBUF and self.state.CLOSED:
self.recv_win = min(value, 15)
self.recv_buf = self.recv_win
return
if option == opt.SO_RCVBSY:
if option == nfc.llcp.SO_RCVBSY:
self.mode.RECV_BUSY = bool(value)
return
super(DataLinkConnection, self).setsockopt(option, value)

def getsockopt(self, option):
if option == opt.SO_RCVBUF:
if option == nfc.llcp.SO_RCVBUF:
return self.recv_win
if option == opt.SO_SNDBSY:
if option == nfc.llcp.SO_SNDBSY:
return self.mode.SEND_BUSY
if option == opt.SO_RCVBSY:
if option == nfc.llcp.SO_RCVBSY:
return self.mode.RECV_BUSY
return super(DataLinkConnection, self).getsockopt(option)

Expand Down Expand Up @@ -500,7 +500,7 @@ def send(self, message, flags):
if len(message) > self.send_miu:
raise err.Error(errno.EMSGSIZE)
while self.send_window_slots == 0 and self.state.ESTABLISHED:
if flags & opt.MSG_DONTWAIT:
if flags & nfc.llcp.MSG_DONTWAIT:
raise err.Error(errno.EWOULDBLOCK)
self.log("waiting on busy send window")
self.send_token.wait()
Expand Down

0 comments on commit 844afef

Please sign in to comment.