示例#1
0
userattributes['nick'] = Meta_Attribute(str, public=True, is_valid=lambda n, v: valid_nick(v), default=TP_NICK_DEFAULT)
userattributes['nick'].is_required()
userattributes['status_icon'] = Meta_Attribute(str, public=True, is_valid=lambda n, v: valid_status(v))
userattributes['uid'] = Meta_Attribute(str, public=True, is_valid=lambda n, v: valid_uid(v))
userattributes['uid'].is_required()

# Private attributes
userattributes['key_fname'] = privatestring()
userattributes['privcommunities'] = Meta_Attribute(list, public=False, is_valid=lambda n, v: type(v) == list and validate_list(v, valid_cid), default=[])
userattributes['remotes'] = Meta_Attribute(list, public=False)
userattributes['friend'] = Meta_Attribute(bool, public=False, save=True, default=False)
userattributes['myfaceversion'] = privateunsignedint()

# Private non-saved attributes
userattributes['ip'] = Meta_Attribute(str, public=False, save=False, is_valid=lambda n, v: valid_ip(v))
userattributes['port'] = Meta_Attribute(int, public=False, save=False, is_valid=lambda n, v: valid_port(v))
userattributes['protocolversion'] = Meta_Attribute(int, public=False, save=False, is_valid=lambda n, v: valid_protocol_version(v), default=PROXIMATE_PROTOCOL_VERSION)

userattributes['tempcommunities'] = Meta_Attribute(list, public=False, save=False, is_valid=lambda n, v: validate_list(v, valid_community), default=[])

userattributes['timeout'] = Meta_Attribute(int, public=False, save=False, is_valid=is_unsigned_int)
userattributes['hops'] = Meta_Attribute(int, public=False, save=False, is_valid=is_unsigned_int)
userattributes['hophistory'] = Meta_Attribute(list, public=False, save=False)

class User(Meta):
    def __init__(self):
        self.metaattributes = userattributes
        self.base_init()

        # Initialize per session information
        self.present = False
示例#2
0
def get_options():
    parser = OptionParser()
    parser.add_option(
        "-b",
        "--broadcast-port",
        action="append",
        type="int",
        dest="broadcastports",
        metavar="port",
        help="Set UDP discovery ports. This option can be used multiple times to set multiple ports. You should always broadcast to the default port (%d) at least."
        % (DEFAULT_PROXIMATE_PORT),
    )
    parser.add_option(
        "--chat-no-context",
        default=True,
        action="store_false",
        dest="chatcontext",
        help="Disable conversation context recovery and sending in chat. This option makes messaging unreliable.",
    )
    parser.add_option("-d", "--debug", default=False, action="store_true", dest="debug", help="Debug mode")
    parser.add_option(
        "--enable-key-exchange",
        default=False,
        action="store_true",
        dest="key_exchange",
        help="Enable key exchange. This is an experimental feature still in development. Default: disabled",
    )
    parser.add_option(
        "--enable-personal",
        default=False,
        action="store_true",
        dest="personal_communities",
        help="Enable personal communities. This is an experimental feature still in development. Default: disabled",
    )
    parser.add_option(
        "--enable-presence",
        default=False,
        action="store_true",
        dest="presence",
        help="Enable presence notification. This is an experimental feature still in development. Default: disabled",
    )
    parser.add_option(
        "-i", "--identity", default=None, dest="identity", metavar="uid", help="Assume identity x, where x is an uid"
    )
    parser.add_option(
        "-I", "--interface", default=None, dest="interface", help="Set the network interface used by Proximate"
    )
    parser.add_option("-n", "--no-gui", default=True, action="store_false", dest="usegui", help="No GUI")
    parser.add_option(
        "-p",
        "--port",
        type="int",
        dest="activeport",
        metavar="x",
        help="Set UDP and TCP port to x. Default UDP port is %d. TCP port is randomized by default."
        % (DEFAULT_PROXIMATE_PORT),
    )
    parser.add_option(
        "-t",
        "--proximate-dir",
        default=None,
        dest="proximatedir",
        metavar="dir",
        help="Set Proximate directory. Default: $HOME/.proximate",
    )
    parser.add_option("--test", default=None, dest="test", metavar="plugin", help="Run self-test for plugin")
    parser.add_option(
        "--traffic-mode",
        default=None,
        dest="traffic_mode",
        metavar="x",
        type="int",
        help="Set traffic mode: 0 for normal traffic. 1 for minimal traffic. Normal traffic is the default.",
    )
    parser.add_option(
        "--udp-fetcher", default=False, action="store_true", dest="udp_fetcher", help="Use UDP for communication"
    )
    parser.add_option(
        "-u",
        "--udp-mode",
        default=3,
        type="int",
        dest="udpmode",
        metavar="mask",
        help="Set UDP mode to mask. 0 means no UDP traffic. 1 means listen but do not send broadcasts. 2 means send but do not listen to broadcasts. 3 (default) means both listen and send.",
    )
    parser.add_option(
        "-v", "--verbose", default=False, action="store_true", dest="verbose", help="Verbose debug output"
    )
    parser.add_option("--version", default=False, action="store_true", help="Print version number")
    (options, args) = parser.parse_args()

    if options.version:
        sys.stdout.write("Proximate %s\n" % get_version())
        sys.exit(0)

    display = os.getenv("DISPLAY")
    if display == None or len(display) == 0:
        options.usegui = False

    portlist = []
    if options.activeport != None:
        portlist.append(options.activeport)
    if options.broadcastports != None:
        portlist += options.broadcastports
    for port in portlist:
        if not valid_port(port):
            die("Invalid port given: %d\n" % (port))

    return (options, args)