예제 #1
0
END_TEST

START_TEST (sockaddr_IPv4_sameaddr)
{

    fail_unless( sockaddr_sameAddr((struct sockaddr *)sockaddr_IPv4_1,
                                   (struct sockaddr *)sockaddr_IPv4_1),
                 "samaddr failed");

    fail_unless( sockaddr_sameAddr((struct sockaddr *)sockaddr_IPv4_1,
                                   (struct sockaddr *)sockaddr_IPv4_3),
                 "samaddr failed");

    fail_unless( sockaddr_sameAddr((struct sockaddr *)sockaddr_IPv4_any,
                                   (struct sockaddr *)sockaddr_IPv4_any_2),
                 "samaddr failed");


    fail_if   ( sockaddr_sameAddr((struct sockaddr *)sockaddr_IPv4_1,
                                  (struct sockaddr *)sockaddr_IPv4_2),
                  "samaddr failed");

    fail_if   ( sockaddr_sameAddr((struct sockaddr *)sockaddr_IPv4_1,
                                  (struct sockaddr *)sockaddr_IPv6_1 ),
                "sameaddr failed");
}
예제 #2
0
bool sockaddr_alike(const struct sockaddr * a,
                    const struct sockaddr * b)
{
    if (a && b && sockaddr_sameAddr(a,b) && sockaddr_samePort(a,b)){
        return true;
    }

    return false;
}
예제 #3
0
파일: stuntrace.c 프로젝트: disigma/stunlib
void
handleStunRespSucsessfull(struct hiutResult* result,
                          int                ttl,
                          struct sockaddr*   srcAddr,
                          struct sockaddr*   rflxAddr,
                          int                rtt,
                          int                retransmits)
{
  /* char addr[SOCKADDR_MAX_STRLEN]; */
  (void) rflxAddr;
  if (ttl == MAX_TTL)
  {
    /* Part of far end alive test */
    result->remoteAlive = true;
    result->currentTTL  = 1;

    stunlib_createId(&result->currStunMsgId);

    StunClient_startSTUNTrace( (STUN_CLIENT_DATA*)result->stunCtx,
                               result,
                               (struct sockaddr*)&result->remoteAddr,
                               (struct sockaddr*)&result->localAddr,
                               false,
                               result->username,
                               result->password,
                               result->currentTTL,
                               result->currStunMsgId,
                               result->sockfd,
                               result->sendFunc,
                               StunStatusCallBack,
                               NULL );
    return;
  }

  bool done = result->num_traces < result->max_recuring ? false : true;
  if ( sockaddr_sameAddr( (struct sockaddr*)&result->remoteAddr,srcAddr ) )
  {
    if (result->path_max_ttl >= ttl)
    {
      result->path_max_ttl = ttl;
      sendCallback(result,
                   srcAddr,
                   ttl,
                   rtt,
                   retransmits,
                   true,
                   done);

      resartIfNotDone(result);
      return;
    }
  }
}