Hello everyone. I am having an issue with flash style connection
So I start off by connecting to port 843 and requesting a
<policy-file-request/>
The server sends me this:
<cross-domain-policy>
<site-control permitted-cross-domain-policies="master-… />
<allow-access-from domain="*website.com" secure="false" />
<allow-access-from domain="*website.com" to-ports="443-49151"/>
</cross-domain-policy>
Since it is non secure, I try to connect to port 443 via connect. However, my connection attempt is declined. What do I do to make it accepted?
Here is what I am doing
Init Winsock
Connect to server port 843
Request policy File
Receive Policy file
Connect to server port 443... declined.
Shouldn't the server accept me as it is non secure and I have received a policy file? I am confused
Here is my sloppy code:
#include <winsock2.h>
#include <windows.h>
#include <stdio.h>
int main()
{
WSADATA wsaData;
if( WSAStartup(MAKEWORD(1, 1), &wsaData) != 0 )
{
WSACleanup();
return 1;
}
LPHOSTENT hostEntry = gethostbyname("www.mywebsite.com");
if( !hostEntry )
{
WSACleanup();
return 2;
}
SOCKET theSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if( theSocket == INVALID_SOCKET )
{
return 3;
}
SOCKADDR_IN sin;
sin.sin_family = AF_INET;
sin.sin_addr = *((LPIN_ADDR)*hostEntry->h_addr_list);
sin.sin_port = htons(843);
if( connect(theSocket, (LPSOCKADDR)&sin, sizeof(struct sockaddr)) == SOCKET_ERROR )
{
WSACleanup();
return 4;
}
printf("Connected on port 843\n");
char buffer[256] = "";
char policyrequest[] = "<policy-file-request/>\0";
if( send(theSocket, policyrequest, 23, 0) == 23 )
{
if( recv(theSocket, buffer, 256, 0) > 0 )
{
printf("CLIENT: %s\nSERVER: %s\n", policyrequest, buffer);
SOCKET sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if( sock == INVALID_SOCKET ) { WSACleanup; return 99; }
sin.sin_port = htons(443);
closesocket(theSocket);
if( connect(sock, (LPSOCKADDR)&sin, sizeof(struct sockaddr)) == SOCKET_ERROR )
{
printf("%d\n", WSAGetLastError());
WSACleanup();
return 100;
}
}
}
closesocket(theSocket);
WSACleanup();
return 0;
}