skypiax: finishing off renaming to mod_skypopen
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@16990 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
0c1071b560
commit
df18a0d499
|
@ -1,57 +0,0 @@
|
||||||
#######################################
|
|
||||||
HOW TO USE SKYPIAX_AUTH
|
|
||||||
#######################################
|
|
||||||
|
|
||||||
You will use skypiax_auth only at the setup moment, to force the Skype client to ask you to authorize "skypiax" to connect to it.
|
|
||||||
|
|
||||||
Then you copy the .Skype configuration directory of the user that has launched Skype (eg: /home/maruzz/.Skype if you are maruzz) on the home directory of the user that will start Skype on the server (eg: root).
|
|
||||||
|
|
||||||
Compile skypiax_auth:
|
|
||||||
$ gcc -Wall -ggdb skypiax_auth.c -o skypiax_auth -lX11
|
|
||||||
|
|
||||||
Then:
|
|
||||||
|
|
||||||
1) on a Linux desktop machine, rmmod all the snd* modules
|
|
||||||
2) on the desktop machine, modprobe snd-dummy
|
|
||||||
3) on the desktop machine, logout from your autologin username if any, launch the Skype client and login as the username you'll use on server
|
|
||||||
4) on the desktop machine, set the desktop client to use the "hw:dummy" audio device, to not update, to not make "events", etc etc... Make and receive a couple of test calls. Please note that you (and the remote party) will hear nothing (you're using the snd-dummy "fake" audio driver), that's ok.
|
|
||||||
3) on the desktop machine, when satisfied of the Skype client setup, use skypiax_auth (that simulates FS-skypiax connecting to the Skype client). The Skype client will ask you to be authorized to let "skypiax" connect.
|
|
||||||
4) Give the authorization and check the "not ask me again" option.
|
|
||||||
5) Close (Quit) the Skype client from the tray icon, so it saves its config.
|
|
||||||
6) Then, relaunch the Skype client and use skypiax_auth again, just to be sure it now succeed.
|
|
||||||
7) Close (Quit) the Skype client from the tray icon, so it saves its config.
|
|
||||||
|
|
||||||
*** Do the steps 1-7 for all Skype usernames you will want to use on the server (eg: one Skype username per channel)
|
|
||||||
|
|
||||||
When finished with all the Skype usernames:
|
|
||||||
Copy or targzip the .Skype directory and all its content on the home directory of the server user that will launch the Skype client(s).
|
|
||||||
|
|
||||||
############################
|
|
||||||
first time you use skypiax_auth
|
|
||||||
############################
|
|
||||||
$ ./skypiax_auth
|
|
||||||
Skype instance found with id #27263062
|
|
||||||
RECEIVED==> ERROR 68
|
|
||||||
RECEIVED==> OK
|
|
||||||
|
|
||||||
############################
|
|
||||||
Give the auth to the Skype client, and tell him not to ask again
|
|
||||||
Then Ctrl-C to exit from skypiax_auth
|
|
||||||
############################
|
|
||||||
|
|
||||||
|
|
||||||
Close (Quit) the Skype client from the tray icon, so it saves its config.
|
|
||||||
Then, relaunch the Skype client
|
|
||||||
|
|
||||||
############################
|
|
||||||
you use skypiax_auth again
|
|
||||||
############################
|
|
||||||
$ ./skypiax_auth
|
|
||||||
Skype instance found with id #27263062
|
|
||||||
RECEIVED==> OK
|
|
||||||
RECEIVED==> PROTOCOL 6
|
|
||||||
RECEIVED==> CONNSTATUS ONLINE
|
|
||||||
RECEIVED==> CURRENTUSERHANDLE gmaruzz3
|
|
||||||
RECEIVED==> USERSTATUS INVISIBLE
|
|
||||||
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
localhost
|
|
|
@ -1,214 +0,0 @@
|
||||||
<configuration name="skypiax.conf" description="Skypiax Configuration">
|
|
||||||
<global_settings>
|
|
||||||
<param name="debug" value="8"/>
|
|
||||||
<param name="codec-master" value="us"/>
|
|
||||||
<param name="dialplan" value="XML"/>
|
|
||||||
<param name="context" value="default"/>
|
|
||||||
<param name="codec-prefs" value="gsm,ulaw"/>
|
|
||||||
<param name="codec-rates" value="8000,16000"/>
|
|
||||||
<param name="hold-music" value="$${moh_uri}"/>
|
|
||||||
<param name="destination" value="5000"/>
|
|
||||||
</global_settings>
|
|
||||||
<!-- one entry here per skypiax interface -->
|
|
||||||
<per_interface_settings>
|
|
||||||
<interface id="1" name="interface1">
|
|
||||||
<param name="hold-music" value="$${moh_uri}"/>
|
|
||||||
<param name="dialplan" value="XML"/>
|
|
||||||
<param name="context" value="default"/>
|
|
||||||
<param name="X11-display" value=":101"/>
|
|
||||||
<param name="tcp_cli_port" value="15556"/>
|
|
||||||
<param name="tcp_srv_port" value="15557"/>
|
|
||||||
<param name="skype_user" value="skypiax1"/>
|
|
||||||
<param name="destination" value="5000"/>
|
|
||||||
</interface>
|
|
||||||
<interface id="2" name="interface2">
|
|
||||||
<param name="hold-music" value="$${moh_uri}"/>
|
|
||||||
<param name="dialplan" value="XML"/>
|
|
||||||
<param name="context" value="default"/>
|
|
||||||
<param name="X11-display" value=":102"/>
|
|
||||||
<param name="tcp_cli_port" value="15558"/>
|
|
||||||
<param name="tcp_srv_port" value="15559"/>
|
|
||||||
<param name="skype_user" value="skypiax2"/>
|
|
||||||
<param name="destination" value="5000"/>
|
|
||||||
</interface>
|
|
||||||
<!-- following interfaces are commented out!
|
|
||||||
<interface id="3" name="interface3">
|
|
||||||
<param name="hold-music" value="$${moh_uri}"/>
|
|
||||||
<param name="dialplan" value="XML"/>
|
|
||||||
<param name="context" value="default"/>
|
|
||||||
<param name="X11-display" value=":103"/>
|
|
||||||
<param name="tcp_cli_port" value="15560"/>
|
|
||||||
<param name="tcp_srv_port" value="15561"/>
|
|
||||||
<param name="skype_user" value="skypiax3"/>
|
|
||||||
</interface>
|
|
||||||
|
|
||||||
<interface id="4" name="interface4">
|
|
||||||
<param name="hold-music" value="$${moh_uri}"/>
|
|
||||||
<param name="dialplan" value="XML"/>
|
|
||||||
<param name="context" value="default"/>
|
|
||||||
<param name="X11-display" value=":104"/>
|
|
||||||
<param name="tcp_cli_port" value="15562"/>
|
|
||||||
<param name="tcp_srv_port" value="15563"/>
|
|
||||||
<param name="skype_user" value="skypiax4"/>
|
|
||||||
</interface>
|
|
||||||
|
|
||||||
<interface id="5" name="interface5">
|
|
||||||
<param name="hold-music" value="$${moh_uri}"/>
|
|
||||||
<param name="dialplan" value="XML"/>
|
|
||||||
<param name="context" value="default"/>
|
|
||||||
<param name="X11-display" value=":105"/>
|
|
||||||
<param name="tcp_cli_port" value="15564"/>
|
|
||||||
<param name="tcp_srv_port" value="15565"/>
|
|
||||||
<param name="skype_user" value="skypiax5"/>
|
|
||||||
</interface>
|
|
||||||
<interface id="6" name="interface6">
|
|
||||||
<param name="hold-music" value="$${moh_uri}"/>
|
|
||||||
<param name="dialplan" value="XML"/>
|
|
||||||
<param name="context" value="default"/>
|
|
||||||
<param name="X11-display" value=":106"/>
|
|
||||||
<param name="tcp_cli_port" value="15566"/>
|
|
||||||
<param name="tcp_srv_port" value="15567"/>
|
|
||||||
<param name="skype_user" value="skypiax6"/>
|
|
||||||
</interface>
|
|
||||||
<interface id="7" name="interface7">
|
|
||||||
<param name="hold-music" value="$${moh_uri}"/>
|
|
||||||
<param name="dialplan" value="XML"/>
|
|
||||||
<param name="context" value="default"/>
|
|
||||||
<param name="X11-display" value=":107"/>
|
|
||||||
<param name="tcp_cli_port" value="15568"/>
|
|
||||||
<param name="tcp_srv_port" value="15569"/>
|
|
||||||
<param name="skype_user" value="skypiax7"/>
|
|
||||||
</interface>
|
|
||||||
|
|
||||||
<interface id="8" name="interface8">
|
|
||||||
<param name="hold-music" value="$${moh_uri}"/>
|
|
||||||
<param name="dialplan" value="XML"/>
|
|
||||||
<param name="context" value="default"/>
|
|
||||||
<param name="X11-display" value=":108"/>
|
|
||||||
<param name="tcp_cli_port" value="15570"/>
|
|
||||||
<param name="tcp_srv_port" value="15571"/>
|
|
||||||
<param name="skype_user" value="skypiax8"/>
|
|
||||||
</interface>
|
|
||||||
|
|
||||||
<interface id="9" name="interface9">
|
|
||||||
<param name="hold-music" value="$${moh_uri}"/>
|
|
||||||
<param name="dialplan" value="XML"/>
|
|
||||||
<param name="context" value="default"/>
|
|
||||||
<param name="X11-display" value=":109"/>
|
|
||||||
<param name="tcp_cli_port" value="15572"/>
|
|
||||||
<param name="tcp_srv_port" value="15573"/>
|
|
||||||
<param name="skype_user" value="skypiax9"/>
|
|
||||||
</interface>
|
|
||||||
|
|
||||||
<interface id="10" name="interface10">
|
|
||||||
<param name="hold-music" value="$${moh_uri}"/>
|
|
||||||
<param name="dialplan" value="XML"/>
|
|
||||||
<param name="context" value="default"/>
|
|
||||||
<param name="X11-display" value=":110"/>
|
|
||||||
<param name="tcp_cli_port" value="15574"/>
|
|
||||||
<param name="tcp_srv_port" value="15575"/>
|
|
||||||
<param name="skype_user" value="skypiax10"/>
|
|
||||||
</interface>
|
|
||||||
|
|
||||||
<interface id="11" name="interface11">
|
|
||||||
<param name="hold-music" value="$${moh_uri}"/>
|
|
||||||
<param name="dialplan" value="XML"/>
|
|
||||||
<param name="context" value="default"/>
|
|
||||||
<param name="X11-display" value=":111"/>
|
|
||||||
<param name="tcp_cli_port" value="15576"/>
|
|
||||||
<param name="tcp_srv_port" value="15577"/>
|
|
||||||
<param name="skype_user" value="skypiax11"/>
|
|
||||||
</interface>
|
|
||||||
|
|
||||||
<interface id="12" name="interface12">
|
|
||||||
<param name="hold-music" value="$${moh_uri}"/>
|
|
||||||
<param name="dialplan" value="XML"/>
|
|
||||||
<param name="context" value="default"/>
|
|
||||||
<param name="X11-display" value=":112"/>
|
|
||||||
<param name="tcp_cli_port" value="15578"/>
|
|
||||||
<param name="tcp_srv_port" value="15579"/>
|
|
||||||
<param name="skype_user" value="skypiax12"/>
|
|
||||||
</interface>
|
|
||||||
|
|
||||||
<interface id="13" name="interface13">
|
|
||||||
<param name="hold-music" value="$${moh_uri}"/>
|
|
||||||
<param name="dialplan" value="XML"/>
|
|
||||||
<param name="context" value="default"/>
|
|
||||||
<param name="X11-display" value=":113"/>
|
|
||||||
<param name="tcp_cli_port" value="15580"/>
|
|
||||||
<param name="tcp_srv_port" value="15581"/>
|
|
||||||
<param name="skype_user" value="skypiax13"/>
|
|
||||||
</interface>
|
|
||||||
|
|
||||||
<interface id="14" name="interface14">
|
|
||||||
<param name="hold-music" value="$${moh_uri}"/>
|
|
||||||
<param name="dialplan" value="XML"/>
|
|
||||||
<param name="context" value="default"/>
|
|
||||||
<param name="X11-display" value=":114"/>
|
|
||||||
<param name="tcp_cli_port" value="15582"/>
|
|
||||||
<param name="tcp_srv_port" value="15583"/>
|
|
||||||
<param name="skype_user" value="skypiax14"/>
|
|
||||||
</interface>
|
|
||||||
|
|
||||||
<interface id="15" name="interface15">
|
|
||||||
<param name="hold-music" value="$${moh_uri}"/>
|
|
||||||
<param name="dialplan" value="XML"/>
|
|
||||||
<param name="context" value="default"/>
|
|
||||||
<param name="X11-display" value=":115"/>
|
|
||||||
<param name="tcp_cli_port" value="15584"/>
|
|
||||||
<param name="tcp_srv_port" value="15585"/>
|
|
||||||
<param name="skype_user" value="skypiax15"/>
|
|
||||||
</interface>
|
|
||||||
|
|
||||||
<interface id="16" name="interface16">
|
|
||||||
<param name="hold-music" value="$${moh_uri}"/>
|
|
||||||
<param name="dialplan" value="XML"/>
|
|
||||||
<param name="context" value="default"/>
|
|
||||||
<param name="X11-display" value=":116"/>
|
|
||||||
<param name="tcp_cli_port" value="15586"/>
|
|
||||||
<param name="tcp_srv_port" value="15587"/>
|
|
||||||
<param name="skype_user" value="skypiax16"/>
|
|
||||||
</interface>
|
|
||||||
|
|
||||||
<interface id="17" name="interface17">
|
|
||||||
<param name="hold-music" value="$${moh_uri}"/>
|
|
||||||
<param name="dialplan" value="XML"/>
|
|
||||||
<param name="context" value="default"/>
|
|
||||||
<param name="X11-display" value=":117"/>
|
|
||||||
<param name="tcp_cli_port" value="15588"/>
|
|
||||||
<param name="tcp_srv_port" value="15589"/>
|
|
||||||
<param name="skype_user" value="skypiax17"/>
|
|
||||||
</interface>
|
|
||||||
|
|
||||||
<interface id="18" name="interface18">
|
|
||||||
<param name="hold-music" value="$${moh_uri}"/>
|
|
||||||
<param name="dialplan" value="XML"/>
|
|
||||||
<param name="context" value="default"/>
|
|
||||||
<param name="X11-display" value=":118"/>
|
|
||||||
<param name="tcp_cli_port" value="15590"/>
|
|
||||||
<param name="tcp_srv_port" value="15591"/>
|
|
||||||
<param name="skype_user" value="skypiax18"/>
|
|
||||||
</interface>
|
|
||||||
|
|
||||||
<interface id="19" name="interface19">
|
|
||||||
<param name="hold-music" value="$${moh_uri}"/>
|
|
||||||
<param name="dialplan" value="XML"/>
|
|
||||||
<param name="context" value="default"/>
|
|
||||||
<param name="X11-display" value=":119"/>
|
|
||||||
<param name="tcp_cli_port" value="15592"/>
|
|
||||||
<param name="tcp_srv_port" value="15593"/>
|
|
||||||
<param name="skype_user" value="skypiax19"/>
|
|
||||||
</interface>
|
|
||||||
|
|
||||||
<interface id="20" name="interface20">
|
|
||||||
<param name="hold-music" value="$${moh_uri}"/>
|
|
||||||
<param name="dialplan" value="XML"/>
|
|
||||||
<param name="context" value="default"/>
|
|
||||||
<param name="X11-display" value=":120"/>
|
|
||||||
<param name="tcp_cli_port" value="15594"/>
|
|
||||||
<param name="tcp_srv_port" value="15595"/>
|
|
||||||
<param name="skype_user" value="skypiax20"/>
|
|
||||||
</interface>
|
|
||||||
-->
|
|
||||||
</per_interface_settings>
|
|
||||||
</configuration>
|
|
|
@ -1,219 +0,0 @@
|
||||||
//gcc -Wall -ggdb skypiax_auth.c -o skypiax_auth -lX11
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <X11/Xlib.h>
|
|
||||||
#include <X11/Xlibint.h>
|
|
||||||
#include <X11/Xatom.h>
|
|
||||||
|
|
||||||
struct SkypiaxHandles {
|
|
||||||
Window skype_win;
|
|
||||||
Display *disp;
|
|
||||||
Window win;
|
|
||||||
int api_connected;
|
|
||||||
int fdesc[2];
|
|
||||||
};
|
|
||||||
|
|
||||||
XErrorHandler old_handler = 0;
|
|
||||||
int xerror = 0;
|
|
||||||
char *dispname;
|
|
||||||
|
|
||||||
int X11_errors_handler(Display * dpy, XErrorEvent * err)
|
|
||||||
{
|
|
||||||
(void) dpy;
|
|
||||||
|
|
||||||
xerror = err->error_code;
|
|
||||||
printf("\n\nReceived error code %d from X Server on display '%s'\n\n", xerror, dispname);
|
|
||||||
return 0; /* ignore the error */
|
|
||||||
}
|
|
||||||
|
|
||||||
static void X11_errors_trap(void)
|
|
||||||
{
|
|
||||||
xerror = 0;
|
|
||||||
old_handler = XSetErrorHandler(X11_errors_handler);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int X11_errors_untrap(void)
|
|
||||||
{
|
|
||||||
XSetErrorHandler(old_handler);
|
|
||||||
return (xerror != BadValue) && (xerror != BadWindow);
|
|
||||||
}
|
|
||||||
|
|
||||||
int skypiax_send_message(struct SkypiaxHandles *SkypiaxHandles, const char *message_P)
|
|
||||||
{
|
|
||||||
|
|
||||||
Window w_P;
|
|
||||||
Display *disp;
|
|
||||||
Window handle_P;
|
|
||||||
int ok;
|
|
||||||
|
|
||||||
w_P = SkypiaxHandles->skype_win;
|
|
||||||
disp = SkypiaxHandles->disp;
|
|
||||||
handle_P = SkypiaxHandles->win;
|
|
||||||
|
|
||||||
Atom atom1 = XInternAtom(disp, "SKYPECONTROLAPI_MESSAGE_BEGIN", False);
|
|
||||||
Atom atom2 = XInternAtom(disp, "SKYPECONTROLAPI_MESSAGE", False);
|
|
||||||
unsigned int pos = 0;
|
|
||||||
unsigned int len = strlen(message_P);
|
|
||||||
XEvent e;
|
|
||||||
|
|
||||||
memset(&e, 0, sizeof(e));
|
|
||||||
e.xclient.type = ClientMessage;
|
|
||||||
e.xclient.message_type = atom1; /* leading message */
|
|
||||||
e.xclient.display = disp;
|
|
||||||
e.xclient.window = handle_P;
|
|
||||||
e.xclient.format = 8;
|
|
||||||
|
|
||||||
X11_errors_trap();
|
|
||||||
do {
|
|
||||||
unsigned int i;
|
|
||||||
for (i = 0; i < 20 && i + pos <= len; ++i)
|
|
||||||
e.xclient.data.b[i] = message_P[i + pos];
|
|
||||||
XSendEvent(disp, w_P, False, 0, &e);
|
|
||||||
|
|
||||||
e.xclient.message_type = atom2; /* following messages */
|
|
||||||
pos += i;
|
|
||||||
} while (pos <= len);
|
|
||||||
|
|
||||||
XSync(disp, False);
|
|
||||||
ok = X11_errors_untrap();
|
|
||||||
|
|
||||||
if (!ok)
|
|
||||||
printf("Sending message failed with status %d\n", xerror);
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
int skypiax_present(struct SkypiaxHandles *SkypiaxHandles)
|
|
||||||
{
|
|
||||||
Atom skype_inst = XInternAtom(SkypiaxHandles->disp, "_SKYPE_INSTANCE", True);
|
|
||||||
|
|
||||||
Atom type_ret;
|
|
||||||
int format_ret;
|
|
||||||
unsigned long nitems_ret;
|
|
||||||
unsigned long bytes_after_ret;
|
|
||||||
unsigned char *prop;
|
|
||||||
int status;
|
|
||||||
|
|
||||||
X11_errors_trap();
|
|
||||||
status =
|
|
||||||
XGetWindowProperty(SkypiaxHandles->disp, DefaultRootWindow(SkypiaxHandles->disp),
|
|
||||||
skype_inst, 0, 1, False, XA_WINDOW, &type_ret, &format_ret, &nitems_ret, &bytes_after_ret, &prop);
|
|
||||||
|
|
||||||
X11_errors_untrap();
|
|
||||||
/* sanity check */
|
|
||||||
if (status != Success || format_ret != 32 || nitems_ret != 1) {
|
|
||||||
SkypiaxHandles->skype_win = (Window) - 1;
|
|
||||||
printf("Skype instance not found on display '%s'\n", dispname);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
SkypiaxHandles->skype_win = *(const unsigned long *) prop & 0xffffffff;
|
|
||||||
printf("Skype instance found on display '%s', with id #%d\n", dispname, (unsigned int) SkypiaxHandles->skype_win);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void skypiax_clean_disp(void *data)
|
|
||||||
{
|
|
||||||
|
|
||||||
int *dispptr;
|
|
||||||
int disp;
|
|
||||||
|
|
||||||
dispptr = data;
|
|
||||||
disp = *dispptr;
|
|
||||||
|
|
||||||
if (disp) {
|
|
||||||
close(disp);
|
|
||||||
} else {
|
|
||||||
}
|
|
||||||
usleep(1000);
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
|
||||||
{
|
|
||||||
|
|
||||||
struct SkypiaxHandles SkypiaxHandles;
|
|
||||||
char buf[512];
|
|
||||||
Display *disp = NULL;
|
|
||||||
Window root = -1;
|
|
||||||
Window win = -1;
|
|
||||||
|
|
||||||
if (argc == 2)
|
|
||||||
dispname = argv[1];
|
|
||||||
else
|
|
||||||
dispname = ":0.0";
|
|
||||||
|
|
||||||
disp = XOpenDisplay(dispname);
|
|
||||||
if (!disp) {
|
|
||||||
printf("Cannot open X Display '%s', exiting\n", dispname);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
int xfd;
|
|
||||||
xfd = XConnectionNumber(disp);
|
|
||||||
|
|
||||||
SkypiaxHandles.disp = disp;
|
|
||||||
|
|
||||||
if (skypiax_present(&SkypiaxHandles)) {
|
|
||||||
root = DefaultRootWindow(disp);
|
|
||||||
win = XCreateSimpleWindow(disp, root, 0, 0, 1, 1, 0, BlackPixel(disp, DefaultScreen(disp)), BlackPixel(disp, DefaultScreen(disp)));
|
|
||||||
|
|
||||||
SkypiaxHandles.win = win;
|
|
||||||
|
|
||||||
snprintf(buf, 512, "NAME skypiax");
|
|
||||||
|
|
||||||
if (!skypiax_send_message(&SkypiaxHandles, buf)) {
|
|
||||||
printf("Sending message failed - probably Skype crashed. Please run/restart Skype manually and launch skypiax_auth again\n");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
snprintf(buf, 512, "PROTOCOL 6");
|
|
||||||
if (!skypiax_send_message(&SkypiaxHandles, buf)) {
|
|
||||||
printf("Sending message failed - probably Skype crashed. Please run/restart Skype manually and launch skypiax_auth again\n");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* perform an events loop */
|
|
||||||
XEvent an_event;
|
|
||||||
char buf[21]; /* can't be longer */
|
|
||||||
char buffer[17000];
|
|
||||||
char *b;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
b = buffer;
|
|
||||||
|
|
||||||
while (1) {
|
|
||||||
XNextEvent(disp, &an_event);
|
|
||||||
switch (an_event.type) {
|
|
||||||
case ClientMessage:
|
|
||||||
|
|
||||||
if (an_event.xclient.format != 8)
|
|
||||||
break;
|
|
||||||
|
|
||||||
for (i = 0; i < 20 && an_event.xclient.data.b[i] != '\0'; ++i)
|
|
||||||
buf[i] = an_event.xclient.data.b[i];
|
|
||||||
|
|
||||||
buf[i] = '\0';
|
|
||||||
|
|
||||||
strcat(buffer, buf);
|
|
||||||
|
|
||||||
if (i < 20) { /* last fragment */
|
|
||||||
unsigned int howmany;
|
|
||||||
|
|
||||||
howmany = strlen(b) + 1;
|
|
||||||
|
|
||||||
printf("RECEIVED==> %s\n", b);
|
|
||||||
memset(buffer, '\0', 17000);
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
printf("Skype client not found on display '%s'. Please run/restart Skype manually and launch skypiax_auth again\n\n\n", dispname);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
}
|
|
Loading…
Reference in New Issue