3000
  -   ˆl–äY>”jC]Šq@³p\jbÑ¿À41_ŠI|¥�+õJi¿ÄÃ  )    [main]
autoupdate=False
autofilter=False
     ˆÂÁƒZkÄÃ `    #!/usr/local/cpanel/3rdparty/bin/perl

# cpanel - scripts/fixmailman                      Copyright 2022 cPanel, L.L.C.
#                                                           All rights reserved.
# copyright@cpanel.net                                         http://cpanel.net
# This code is subject to the cPanel license. Unauthorized copying is prohibited

use strict;

use Cpanel::Config::LoadCpConf ();
use Cpanel::Mailman::Perms     ();
use Cpanel::Mailman::Filesys   ();

#############################################
# Gotta check to see if mailman is disabled #
#############################################

my $cpconf = Cpanel::Config::LoadCpConf::loadcpconf();

if ( $cpconf->{'skipmailman'} ) {
    print "Mailman is disabled\n";
    exit 0;
}

##################################################
# Fix permissions for archives and mailing lists #
##################################################

my $mailman = Cpanel::Mailman::Perms->new();

print "Setting mailman archive permissions.\n";

$mailman->set_archive_perms();

print "Setting mailman lists permissions.\n";
my $MAILMAN_LIST_DIR = Cpanel::Mailman::Filesys::MAILING_LISTS_DIR();

if ( opendir( my $list_dir, $MAILMAN_LIST_DIR ) ) {
    while ( my $list = readdir($list_dir) ) {
        next if ( $list !~ m/_/ && $list !~ m/mailman/ );

        $mailman->set_perms_for_one_list($list);

    }

}
else {
    print "Failed to open: " . $MAILMAN_LIST_DIR . " ($!)\n";
}

##################################################################################################
# Checking for files in /usr/local/cpanel/3rdparty/mailman/qfiles/out and removing if they exist #
##################################################################################################

print "Purging mailman queue.\n";

my $qdir = '/usr/local/cpanel/3rdparty/mailman/qfiles/out';

if ( opendir( my $dh, $qdir ) ) {
    while ( my $qfile = readdir($dh) ) {
        if ( $qfile !~ m/^\./ ) {
            unlink("$qdir/$qfile") or print "Failed to unlink file $qdir/$qfile: $!\n";
        }
    }
    closedir $dh;
}
else {
    print "Unable to open directory $qdir: $!\n";
}

exit(0);
  A   ˆl–Ü4ý( ©³( 	Å€fàB¦-ÿÂƒe¦Z_†I|¥�+a–Ým_J*j"Tâ€zà\¸ÛjbÑ¿Æ j    /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
/*
 * <linux/usb/midi.h> -- USB MIDI definitions.
 *
 * Copyright (C) 2006 Thumtronics Pty Ltd.
 * Developed for Thumtronics by Grey Innovation
 * Ben Williamson <ben.williamson@greyinnovation.com>
 *
 * This software is distributed under the terms of the GNU General Public
 * License ("GPL") version 2, as published by the Free Software Foundation.
 *
 * This file holds USB constants and structures defined
 * by the USB Device Class Definition for MIDI Devices.
 * Comments below reference relevant sections of that document:
 *
 * http://www.usb.org/developers/devclass_docs/midi10.pdf
 */

#ifndef __LINUX_USB_MIDI_H
#define __LINUX_USB_MIDI_H

#include <linux/types.h>

/* A.1  MS Class-Specific Interface Descriptor Subtypes */
#define USB_MS_HEADER		0x01
#define USB_MS_MIDI_IN_JACK	0x02
#define USB_MS_MIDI_OUT_JACK	0x03
#define USB_MS_ELEMENT		0x04

/* A.2  MS Class-Specific Endpoint Descriptor Subtypes */
#define USB_MS_GENERAL		0x01

/* A.3  MS MIDI IN and OUT Jack Types */
#define USB_MS_EMBEDDED		0x01
#define USB_MS_EXTERNAL		0x02

/* 6.1.2.1  Class-Specific MS Interface Header Descriptor */
struct usb_ms_header_descriptor {
	__u8  bLength;
	__u8  bDescriptorType;
	__u8  bDescriptorSubtype;
	__le16 bcdMSC;
	__le16 wTotalLength;
} __attribute__ ((packed));

#define USB_DT_MS_HEADER_SIZE	7

/* 6.1.2.2  MIDI IN Jack Descriptor */
struct usb_midi_in_jack_descriptor {
	__u8  bLength;
	__u8  bDescriptorType;		/* USB_DT_CS_INTERFACE */
	__u8  bDescriptorSubtype;	/* USB_MS_MIDI_IN_JACK */
	__u8  bJackType;		/* USB_MS_EMBEDDED/EXTERNAL */
	__u8  bJackID;
	__u8  iJack;
} __attribute__ ((packed));

#define USB_DT_MIDI_IN_SIZE	6

struct usb_midi_sou