// tdunread.cc. Test for -*- C++ -*- socket library
// Copyright (C) 1992-1996 Gnanasekaran Swaminathan <gs4t@virginia.edu>
//
// Permission is granted to use at your own risk and distribute this software
// in source and  binary forms provided  the above copyright notice and  this
// paragraph are  preserved on all copies.  This software is provided "as is"
// with no express or implied warranty.
//
// Version: 12Jan97 1.11

#include <iostream>
#include <socket++/sockunix.h>
#include <unistd.h>
#include <stdio.h> // solaris2.3 perror is here
#include <sys/stat.h> // solaris 2.3 chmod is here
#include <errno.h>
#include <stdlib.h>

using namespace std;

void terminate (void) { exit (1); }
void unexpected (void) { abort (); }

int main(int ac, char** av)
{
  if (ac != 2) {
    cerr << "USAGE: " << av[0] << " socket_path_name\n";
    return 1;
  }
  
  isockunix su (sockbuf::sock_dgram);
  
  su->bind(av[1]);
  
  cout << "Socket name = " << av[1] << endl;
  
  if (chmod (av[1], 0777) == -1) {
    perror("chmod");
    return 1;
  }
  
  char buf[1024];
  int i;
  su >> i;
  cout << av[0] << ": " << i << " strings: ";
  while (i--) {
    su >> buf;
    cout << buf << ' ';
  }
  cout << endl;
  unlink(av[1]);
  
  return 0;
}


syntax highlighted by Code2HTML, v. 0.9.1