コード例 #1
0
ファイル: session.c プロジェクト: tidatida/lagopus
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;
}
コード例 #2
0
ファイル: bindnames.c プロジェクト: rebekal/ntnu
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; 
}
コード例 #3
0
ファイル: session.c プロジェクト: tidatida/lagopus
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;
}