mirror of /home/gitosis/repositories/libowfat.git
Mirror of :pserver:cvs@cvs.fefe.de:/cvs libowfat
https://www.fefe.de/libowfat/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
533 B
27 lines
533 B
#include "ip6.h" |
|
#include "byte.h" |
|
#include <ctype.h> |
|
#include "socket.h" |
|
#include "havealloca.h" |
|
|
|
size_t scan_ip6if(const char* src,char* ip,uint32* scope_id) { |
|
size_t i=scan_ip6(src,ip); |
|
*scope_id=0; |
|
if (src[i]=='%') { |
|
size_t j; |
|
char* tmp; |
|
for (j=i+1; isalnum(src[j]); ++j) ; |
|
if (!src[j]) |
|
tmp=(char*)src+i+1; |
|
else { |
|
tmp=alloca(j-i); |
|
byte_copy(tmp,j-(i+1),src+i+1); |
|
tmp[j-(i+1)]=0; |
|
} |
|
if (*tmp) { |
|
*scope_id=socket_getifidx(tmp); |
|
return j; |
|
} |
|
} |
|
return i; |
|
}
|
|
|