lagopus_result_t session_bind(lagopus_session_t s, struct addrunion *saddr, uint16_t sport) { int ret; char addr[256]; char port[16]; if (s == NULL || saddr == NULL || sport == 0) { lagopus_msg_warning("session is null.\n"); return LAGOPUS_RESULT_ANY_FAILURES; } inet_ntop(saddr->family, &saddr->addr4, addr, sizeof(addr)); snprintf(port, sizeof(port), "%d", sport); ret = bind_default(s, addr, port); if (ret < 0) { lagopus_msg_warning("bind_default error.\n"); return LAGOPUS_RESULT_POSIX_API_ERROR; } if (s->session_type & SESSION_PASSIVE) { ret = listen(s->sock, SOMAXCONN); if (ret < 0) { return LAGOPUS_RESULT_POSIX_API_ERROR; } } return LAGOPUS_RESULT_OK; }
int bind_constant ( node_t *root, int stackOffset) { if(outputStage == 6){fprintf ( stderr, "CONSTANT\n"); } if(root->data_type.base_type == STRING_TYPE) { root->string_index = strings_add( root->string_const); } bind_default(root, stackOffset); return 0; }
lagopus_result_t session_connect(lagopus_session_t s, struct addrunion *daddr, uint16_t dport, struct addrunion *saddr, uint16_t sport) { char addr[256]; char port[16]; lagopus_result_t ret; if (s == NULL) { lagopus_msg_warning("session is null.\n"); return LAGOPUS_RESULT_ANY_FAILURES; } if (!(s->session_type & SESSION_ACTIVE)) { lagopus_msg_warning("not using passive socket.\n"); return LAGOPUS_RESULT_TLS_CONN_ERROR; } if (saddr != NULL) { inet_ntop(saddr->family, &saddr->addr4, addr, sizeof(addr)); snprintf(port, sizeof(port), "%d", sport); ret = bind_default(s, addr, port); if (ret < 0) { lagopus_msg_warning("bind_default error.\n"); return LAGOPUS_RESULT_TLS_CONN_ERROR; } } inet_ntop(daddr->family, &daddr->addr4, addr, sizeof(addr)); snprintf(port, sizeof(port), "%d", dport); ret = connect_default(s, addr, port); if (ret < 0) { return ret; } if (s->connect != NULL) { ret = s->connect(s, addr, port); } return ret; }