pidgin/pidgin

Implement SNI support for the gnutls SSL plugin.
release-2.x.y
2019-12-16, Mihai Moldovan
6dba8046e1b1
Implement SNI support for the gnutls SSL plugin.

Note that gnutls is picky in regard to what it accepts as the server name - it
MUST be a domain name. IP addresses are not supported according to the
documentation.

Hence, filter out IP addresses and hope that whatever is not recognized as
such an address is actually a domain name. This will probably fail for more
exotic addresses (especially in IPv6 realm), but wiring up a full-blown parser
is too much effort and SSL plugins are not part of purple-3 anyway.

Fixes #17300
#include "face.h"
#include "sharky.h"
#include "doggy.h"
#include <assert.h>
FACE init_face(KIND kind)
{
FACE face;
face = (FACE)malloc(sizeof(*face));
switch(kind){
case DOG:
init_dog(face);
break;
case SHARK:
init_shark(face);
break;
default:
printf("default face\n");
init_dog(face);
break;
}
return face;
}
void draw_face(FACE face, GLfloat zrot, GLfloat yrot, BOOL left_eye, BOOL right_eye, GLfloat mouth_open, DIRECTION dir, OUTPUT_MODE mode){
face->draw_func(face, zrot, yrot, left_eye, right_eye, mouth_open, dir, mode);
}
void change_materials(FACE f, int* mats, int num_change){
int i;
assert(!(num_change<0 || num_change>NUM_PARTS));
for(i=0;i<num_change;i++){
f->mat_indeces[i]=mats[i];
}
}
void free_face(FACE f){}