コード例 #1
0
int pagekite_add_relay_listener(pagekite_mgr pkm, int port, int flags)
{
  if (pkm == NULL) return -1;
  struct pk_manager* m = (struct pk_manager*) pkm;
  int rv = 0;

#ifdef HAVE_IPV6
  if (flags & PK_WITH_IPV6) {
    rv = pkm_add_listener(m, "::", port,
                          (pagekite_callback_t*) &pkr_conn_accepted_cb,
                          (void*) m);
  }
  else if (flags & PK_WITH_IPV4)
#endif
    rv = pkm_add_listener(m, "0.0.0.0", port,
                          (pagekite_callback_t*) &pkr_conn_accepted_cb,
                          (void*) m);

  return rv;
}
コード例 #2
0
ファイル: pkrelay.c プロジェクト: pagekite/libpagekite
int pagekite_add_relay_listener(pagekite_mgr pkm, int port, int flags)
{
  if (pkm == NULL) return -1;
  struct pk_manager* m = (struct pk_manager*) pkm;

  if (flags & PK_WITH_DEFAULTS) flags |= (PK_WITH_IPV6 | PK_WITH_IPV4);

#ifdef HAVE_IPV6
  if (flags & PK_WITH_IPV6) {
    return pkm_add_listener(m, "::", port,
                            (pagekite_callback_t*) &pkr_conn_accepted_cb,
                            (void*) m);
  }
#endif
  if (flags & PK_WITH_IPV4) {
    return pkm_add_listener(m, "0.0.0.0", port,
                            (pagekite_callback_t*) &pkr_conn_accepted_cb,
                            (void*) m);
  }
  return (pk_error = ERR_NO_IPVX);
}
コード例 #3
0
ファイル: pklua.c プロジェクト: altoplano/libpagekite
int pklua_lua_pkm_add_socket_server(lua_State *L)
{
  pk_log(PK_LOG_LUA_DEBUG, "pklua_lua_pkm_add_socket_server(%p)", L);
  int n = lua_gettop(L);
  if (n != 4 ||
      !lua_istable(L, 1) ||
      !lua_isstring(L, 2) ||
      !lua_isstring(L, 3) ||
      !lua_isnumber(L, 4)) {
    lua_pushstring(L, "Incorrect arguments");
    return lua_error(L);
  } 
  lua_getfield(L, 1, "_pkm");
  if (!lua_islightuserdata(L, -1)) {
    lua_pushstring(L, "Incorrect arguments");
    return lua_error(L);
  }

  struct pk_manager* pkm = lua_touserdata(L, -1);
  lua_remove(L, -1);
  char* name = lua_tostring(L, 2);
  char* host = lua_tostring(L, 3);
  int port = lua_tointeger(L, 4);

  pklua_socket_server_cb_data* data = malloc(sizeof(pklua_socket_server_cb_data)
                                             + strlen(name) + 1); 
  strcpy(data->name, name);
  data->pkm = pkm;
  int lport = pkm_add_listener(pkm, host, port,
                               &pklua_socket_server_accepted_cb,
                               (void *) data);
  if (lport > 0) {
    pk_log(PK_LOG_LUA_INFO,
           "Listening for %s on %s:%d (port %d)", name, host, port, lport);
    return 0;
  }
  else {
    pk_log(PK_LOG_ERROR,
           "Failed to add listener %s on %s:%d", name, host, port);
    lua_pushstring(L, "Failed to add listener");
    return lua_error(L);
  }
}