Sponsored Content
Top Forums Shell Programming and Scripting Fileserver in Perl via xinetd - bad XML output Post 302191958 by blemmo on Monday 5th of May 2008 04:27:58 PM
Old 05-05-2008
Fileserver in Perl via xinetd - bad XML output

Hello there,

I hope I took the right forum...

I never worked with Perl, but now I have to get a simple fileserver running. The goal is to deliver an XML file (it's part of a new security model in the Flashplayer, see Adobe - Developer Center : Setting up a socket policy file server for more on that).

Anyways, I can't get it to work properly. I took Adobe's script, which is intended to work with xinetd (the standalone script btw works fine, but I really want xinetd to handle this). After some small changes it seems to run fine now, but the Flashplayer complains about "malformed" XML. I changed the XML now a 1000 times, but it's always the same, and I begin to wonder, if maybe xinetd might be the problem?

This is the XML:
Code:
<?xml version="1.0"?>
<cross-domain-policy> 
  <site-control permitted-cross-domain-policies="master-only"/> 
  <allow-access-from domain="mytld.com" to-ports="#####"/> 
</cross-domain-policy>

Here's the perl script that takes this file and delivers it to Flash:
Code:
#!/usr/bin/perl
#
# in.flashpolicyd.pl
# Simple socket policy file server
#
# Usage: in.flashpolicyd.pl -file=FILE
# Logs to stderr
#

use strict;

my $NULLBYTE = pack( 'c', 0 );

my $filePath;
my $content;

### READ ARGS

while ( my $arg = shift @ARGV )
{
    if ( $arg =~ m/^--file=(.*)/ )
    {
        $filePath = $1;
    }
}

unless ( $filePath )
{
    die "Usage: in.flashpolicyd.pl --file=FILE\n";
}

### READ FILE

-f $filePath or die "No such file: '$filePath'\n";
-s $filePath < 10_000 or die "File probably too large to be a policy file: '$filePath'\n";

{
        local $/ = undef;
        open POLICYFILE, "<$filePath" or die "Can't open '$filePath': $!\n";
        $content = <POLICYFILE>;
        close POLICYFILE;
}

$content =~ m/cross-domain-policy/ or die "Not a valid policy file: '$filePath'\n";

### HANDLE CONNECTIONS

local $/ = $NULLBYTE;
my $request = <STDIN>;
chomp $request;

if ( $request eq '<policy-file-request/>' )
{
        print STDERR "Valid request received\n";
}
else
{
        print STDERR "Unrecognized request: $request\n\n";
        exit;
}

print STDOUT $content;
#print STDOUT '<?xml version="1.0"?><cross-domain-policy><site-control permitted-cross-domain-policies="master-only"/><allow-access-from domain="mytld.com" to-ports="#####"/></cross-domain-policy>';

print STDERR "Sent policy file\n\n";

# End of file.

As you can see I also tried not to send the file's content, but a string, to make sure there are no extra bytes involved. However, Flash keeps saying that it will ignore the XML because it's malformed.

So, is it possible that xinetd adds something to the result?
Or does anyone sees another thing that might be wrong? I'm fighting with this for 2 days now, so any help is very appreciated.

cheers
 

10 More Discussions You Might Find Interesting

1. Cybersecurity

xinetd.conf

i want to edit inetd.conf for security on my redhat 7.1 box, but i dont have it in my /etc directory, rather, i have xinetd.conf. Can i use xinetd.conf for the same purpose, is it as useful as inetd.conf? (2 Replies)
Discussion started by: lealyz
2 Replies

2. IP Networking

Fileserver?????????? with windows XP and unix

I'm new to this. My question is I have freebsd installed on one computer. I want to make it a file server. My main computer is windows XP. How do I make the freebsd machine in a fileserver. and so that windows xp can see it and access it (2 Replies)
Discussion started by: akari
2 Replies

3. Shell Programming and Scripting

How to parse a XML file using PERL and XML::DOm

I need to know the way. I have got parsing down some nodes. But I was unable to get the child node perfectly. If you have code please send it. It will be very useful for me. (0 Replies)
Discussion started by: girigopal
0 Replies

4. UNIX for Dummies Questions & Answers

Unix as fileserver

Dear all, I am a windows user, am not into unix/linux at all. however, I have a new client who is asking me if unix can act as file server. i.e. my application imports files from several locations and put them in one location (on a shared folder on the server), so my application will be... (7 Replies)
Discussion started by: KBalquis
7 Replies

5. Shell Programming and Scripting

Perl - bad interpreter: No such file or directory

Here is a puzzler. To start, let me say that I've done a search on this issue and it is definitely not related to line endings being encoded in windows returns. I get this error when I run SOME perl scripts. I have a script called hello_world.pl. I do $cp hello_world.pl new_hello_world.pl... (0 Replies)
Discussion started by: mjmtaiwan
0 Replies

6. UNIX for Dummies Questions & Answers

What type of Disk I/O takes place on a FileServer?

When you open a file on a fileserver from your client, what type of operation takes place on the server? I imagine the server's hard drive reads the file that the client has requested, and then makes it available somehow through the network share, is that accurate? Also what service on Unix/Linux... (0 Replies)
Discussion started by: glev2005
0 Replies

7. Shell Programming and Scripting

Bad character in output file

Hi All, I am facing some problems with bad characters in my file.For example- 00000000509 TCI DEVOFFERS= 1 Now I want to remove all bad characters and replace with *. Please suggest some solution. Along with that How to mention a range of ASCII values in TR command to replace? ... (2 Replies)
Discussion started by: bghosh
2 Replies

8. Shell Programming and Scripting

Help in parsing XML output file in perl.

Hi I have an XML output like : <?xml version="1.0" encoding="ISO-8859-1" ?> - <envelope> - <body> - <outputGetUsageSummary> - <usgSumm rerateDone="5"> - <usageAccum accumId="269" accumCaptn="VD_DP_AR" inclUnits="9999999.00" inclUnitsUsed="0.00" shared="false" pooled="false"... (7 Replies)
Discussion started by: rkrish
7 Replies

9. Shell Programming and Scripting

Splitting xml file into several xml files using perl

Hi Everyone, I'm new here and I was checking this old post: /shell-programming-and-scripting/180669-splitting-file-into-several-smaller-files-using-perl.html (cannot paste link because of lack of points) I need to do something like this but understand very little of perl. I also check... (4 Replies)
Discussion started by: mcosta
4 Replies

10. Slackware

Sbin/agetty loop Prevents Boot of Slackware 12.1 Fileserver

HI everyone, Nice to meet you all. I recently rebooted Slackware 12.1 running on a Dell PowerEdge 2400. after 240 days of continuous run-time, and discovered it gets stuck in a sbin/agetty loop. We were rebooting because trying to mount root in webmin broke a bunch of things. Couldn't even get... (3 Replies)
Discussion started by: 5pac3m0nk3y
3 Replies
SAX::PurePerl(3)					User Contributed Perl Documentation					  SAX::PurePerl(3)

NAME
XML::SAX::PurePerl - Pure Perl XML Parser with SAX2 interface SYNOPSIS
use XML::Handler::Foo; use XML::SAX::PurePerl; my $handler = XML::Handler::Foo->new(); my $parser = XML::SAX::PurePerl->new(Handler => $handler); $parser->parse_uri("myfile.xml"); DESCRIPTION
This module implements an XML parser in pure perl. It is written around the upcoming perl 5.8's unicode support and support for multiple document encodings (using the PerlIO layer), however it has been ported to work with ASCII/UTF8 documents under lower perl versions. The SAX2 API is described in detail at http://sourceforge.net/projects/perl-xml/, in the CVS archive, under libxml-perl/docs. Hopefully those documents will be in a better location soon. Please refer to the SAX2 documentation for how to use this module - it is merely a front end to SAX2, and implements nothing that is not in that spec (or at least tries not to - please email me if you find errors in this implementation). BUGS
XML::SAX::PurePerl is slow. Very slow. I suggest you use something else in fact. However it is great as a fallback parser for XML::SAX, where the user might not be able to install an XS based parser or C library. Currently lots, probably. At the moment the weakest area is parsing DOCTYPE declarations, though the code is in place to start doing this. Also parsing parameter entity references is causing me much confusion, since it's not exactly what I would call trivial, or well documented in the XML grammar. XML documents with internal subsets are likely to fail. I am however trying to work towards full conformance using the Oasis test suite. AUTHOR
Matt Sergeant, matt@sergeant.org. Copyright 2001. Please report all bugs to the Perl-XML mailing list at perl-xml@listserv.activestate.com. LICENSE
This is free software. You may use it or redistribute it under the same terms as Perl 5.7.2 itself. perl v5.18.2 2011-09-04 SAX::PurePerl(3)
All times are GMT -4. The time now is 05:18 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy